The present disclosure relates to systems and methods for automatic discovery of management nodes and automatic generation of commands using High Availability (“HA”) modules and Hypertext Transfer Protocol (“HTTP”) options, while interacting with distributed resources over a network. More particularly, the present disclosure relates to systems and methods for communicating with a REpresentational State Transfer (“REST”) Application Programming Interface (“API”), by providing a set of libraries for the HTTP verbs used, adapted to function without supplying the Uniform Resource Locator (“URL”) to the management server in which the REST API resides. By these systems and methods, a user requires no knowledge of where the management server is located in HA environments. This is a distinct advantage, because in HA environments, the management server can easily migrate, and the Internet Protocol/Uniform Resource Locator (“IP/URL”) can change frequently. The present disclosure also relates to automatically searching a Command-Line Interface (“CLI”) and associated libraries, based on REST API OPTION functions (used to retrieve available HTTP verbs for a given resource) by a HA module. These systems and methods support each of the resources specified by the OPTIONS on the root (REST API root), whereby the CLI requests the OPTIONS to dynamically build the entire CLI object to communicate with the API. These systems and methods are configured to receive all HTTP verb functions including Marvin's HA HTTP verbs, by which the CLI object is completely HA-enabled, allowing the underlying HA system to be transparent to the calling library or user.
Typically, in existing systems and methods, writing libraries to communicate with a given REST API requires writing of specific code to target specific URLs. In addition, typically, regular HTTP verb libraries do not provide HA functionality, particularly in the absence of the complete URL.
It would be desirable to make this process generic and dynamically-built by the logical object, while the caller communicates with the API.